The Extensible Markup Language (XML) is a specification for creating custom markup languages. XML is an extensible language because it allows users to define their own elements. The primary purpose of XML is to facilitate the sharing of structured data across different information systems, such as the Internet. XML Schema offers facilities for describing the structure and constraining the content of XML documents. The scope of the constraints defined using XML Schema is limited to a single document. An extension of XML Schema called Service Modeling Language (SML) has been developed. SML allows defining constraints that span multiple documents.
Both XML and SML support identity constraints. Identity constraints are used to specify the uniqueness and reference constraints for one or more elements and attributes contained within the XML or SML document. For example, if a data element called “LegalName” must be unique across all records contained in the document, then an identity constraint can be assigned to that data element to allow the uniqueness requirement to be enforced by a database or other system that ends up processing the document later.
Because SML allows constraints to span multiple documents, it can be resource intensive for databases to process SML documents and enforce applicable identity constraints.